/*
 * @Author: wellington wellington@kreditme.id
 * @Date: 2023-07-27 14:16:04
 * @LastEditors: wellington wellington@kreditme.id
 * @LastEditTime: 2023-07-27 14:47:35
 * @FilePath: /background-removal/src/useHooks/useVmodel.ts
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
export default function useVmodel(props, propName, emit) {
    return computed({
        get(){
            return new Proxy(props[propName], {
                set(obj, name, val){
                    console.log(999)
                    emit(`update:${propName}`, {
                        ...obj,
                        [name]: val
                    })
                    // 注意： 定义 Proxy 代理对象的 set 的时候，
                    // 要 return 一个结果; 可为 boolen , 亦可为一个结果 即：return (obj[key] = val ) 。
                    // 在严格模式下，没加会报错 'set' on proxy: trap returned falsish for property 'message'

                    return true
                }
            })
        },
        set(val){
            emit(`update:${propName}`, val)
        }
    })
}